"""列表的使用方式演示"""

# 列表的编辑
hero = ['凯', "李元芳", "妲己", '甄姬', "孙悟空", "钟无艳", "后羿"]
hero2 = ['凯', "李元芳", "妲己", '甄姬', "孙悟空", "钟无艳", "后羿"]

hero.add(hero2)
print(hero)

# 列表的访问
print("王者荣耀最佳阵容:", end="")  # 全部访问
print(hero)
print("最好玩的英雄是：", end="")
print(hero[0])  # 通过索引访问
print("列表的长度为：", len(hero))

# 添加元素
hero.append("兰陵王")
print("调整之后的阵容是:", end="");
print(hero);
hero.insert(3, "蔡文姬");
print("调整之后的阵容是:", end="");
print(hero);

# 修改列表中的元素
hero[1] = "鲁班";
print("调整之后的阵容是:", end="");
print(hero);

# 删除列表中的元素
del hero[1]
print("删除之后的阵容是:", end="");
print(hero);
del_hero = hero.pop()   # 如果不指定索引的话，表示从最后一个删除
print("删除的英雄是：", del_hero);
name = hero.pop(1)
print("删除的英雄是:" + name);
hero.append("孙悟空")
print("remove之前的阵容是:", end="");
print(hero);
hero.remove("孙悟空")  # remove只删除第一个找到的值，如果要删除全部的，需要使用while循环语句
print("remove之后的阵容是:", end="");
print(hero);

# 列表的排序
hero.sort();
print("根据战斗力排序是:", end="");
print(hero);

print("根据防御临时排序是:", end="");
print(sorted(hero));

hero.reverse()
print("根据生命值排序是:", end="");
print(hero);



# 循环打印列表
for name in hero:
    print("当前英雄的名字是:" + name)

# 数值列表
print("-----使用for循环打印1~20的数字-----")
for i in range(1, 21):
    print(i)

print("-----使用for循环打印1~20的数字-----")
numbers = list(range(1, 30))
for i in numbers:
    print(i)

print("1到100的总和为:" + str(sum(list(range(1, 101)))))

print("-----使用for循环打印1~100的奇数-----")
jishu = list(range(1, 100, 2))
for i in jishu:
    print(i)

print("-----使用for循环打印1~100的3的倍数数-----")
beishu = list(range(3, 100, 3))
for i in beishu:
    print(i)

print("-----使用for循环打印1~10的3的立方-----")
lifang = [value ** 2 for value in range(1, 11)]
for i in lifang:
    print(i)

# 切片的使用
# 指定范围
subHero = hero[3:5]
firstHero = hero[:4]
lastHero = hero[4:]
allHero = hero[:]

print(hero)
print(subHero)
print(firstHero)
print(lastHero)
print(allHero)
